package com.jason.system.mapper;

import com.jason.system.entity.SolveOrder;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * @author jie
 * @version 1.0
 * success come from self-discipline
 * @date 2021/3/26 20:40
 */
public interface SolveOrderMapper {

  /**
   * 根据主键查询（完成工单）信息
   * @param soId 完成工单信息id
   * @return SolveOrder
   */
  SolveOrder getSolveOrderById(@Param("soId") Integer soId);

  /**
   * 分页查询（完成工单）信息
   * @return List<SolveOrder>
   */
  List<SolveOrder> getSolveOrders();

  /**
   * 根据学生id查询登单信息
   * @param sId 学生id
   * @return List<SolveOrder>
   */
  List<SolveOrder> getSolveOrdersBySId(@Param("sId") Integer sId);

  /**
   * 通过完成时间查询（完成工单）信息
   * @param startTime 开始时间
   * @param endTime 截止时间
   * @return List<SolveOrder>
   */
  List<SolveOrder> getSolveOrdersByTime(@Param("startTime") Date startTime,@Param("endTime") Date endTime);

  /**
   * 添加（完成工单）信息
   * @param solveOrder 完成工单信息
   */
  void insertSolveOrder(@Param("solveOrder") SolveOrder solveOrder);

  /**
   * 更新（完成工单）信息
   * @param solveOrder 完成工单信息
   */
  void updateSolveOrder(@Param("solveOrder") SolveOrder solveOrder);

  /**
   * 更新（完成工单）状态
   * @param soId 完成工单信息id
   * @param status 完成工单状态
   */
  void updateSolveOrderStatus(@Param("soId") Integer soId,@Param("status") Integer status);

  /**
   * 根据主键删除（完成工单）信息
   * @param soId 完成工单信息id
   */
  void deleteSolveOrderById(@Param("soId") Integer soId);

  /**
   * 批量删除（完成工单）信息
   * @param soIds 完成工单信息ids,以String形式存在，以逗号分割
   */
  void deleteSolveOrders(@Param("soIds") List<Integer> soIds);
}
